package com.webserver.http;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.nio.charset.StandardCharsets;

/**
 * 响应对象
 * 该类的每一个实例用于表示HTTP协议规定的一个响应内容.
 * 每个响应都由三部分构成:
 * 状态行,响应头,响应正文
 *
 * 第一步:
 * 将ClientHandler中发送响应所提取的重用方法:println方法剪切到这里
 * 并定义属性Socket及对应的构造方法以便println方法可以正确引用到socket.
 */
public class HttpServletResponse_V1 {

    private Socket socket;

    public HttpServletResponse_V1(Socket socket){
        this.socket = socket;
    }

    private void println(String line) throws IOException {
        //通过socket获取输出流,用于给浏览器发送数据
        OutputStream out = socket.getOutputStream();
        //将要发送的字符串使用ISO8859-1编码转换为一组字节
        byte[] data = line.getBytes(StandardCharsets.ISO_8859_1);
        //将这组字节发送给浏览器
        out.write(data);
        out.write(13);//单独发送回车符
        out.write(10);//单独发送换行符
    }
}
